产品动态

您的位置: 首页产品动态

最新技术更多

web3的provider的正确使用

作者:文章来源——CSDN 孙哥哥发布时间:2019-08-13

 

我们在进行测试的时候,如果使用ganache,那么就是会用ganache提供的provider

 

const web3 = new Web3(ganache.provider());

 

我们进行合约部署的时候,可以使用infura提供的provider

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/55405784621253675928225999278386/20190813172138161.png

 

但是注意上面的mnemonic是12个账户助记词,这12个词是合约部署者的

 

在和以太坊的交互中,面对的成千上百的用户,如果用户都使用部署者的账户,大量的操作消耗gas那部署者就血亏了

 

因此在交互中,这里应该换为用户使用的钱包的provider,例如metamask的provider

 

我们只要装了metamask插件,那么浏览器中就被注入了web3

 

没装当然就是没有的

 

因此我们是可以拿到用户的provider的

 

但是!!!

 

这个web3的版本是相当低的,1.0的在进行紧张的测试中,还未在该插件中上线

 

但是我们开发使用的就是1.0的,如何让1.0版本的web3使用0.2版本的provider呢

 

上面的情况打个比方:

 

我们给用户提供了高版本的iphone,但是没有也不能提供电话卡,不能打电话

 

metamask提供了低版本的诺基亚,有电话卡,能打电话

 

那么我们就需要用户使用我们的iphone,并且把诺基亚的卡插进来

 

我们使用新的模块web3.js组合web3

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/38052410101717039792358618928452/20190813172156364.png

 

导出后我们在其他的模块中使用的就是这个组装web3

 

注意,window.web3.currentProvider能找到一定是要装了metamask或者类似插件

 

联系我们

400-090-3910

(北京总部:全国统一咨询热线)

北京地址:北京市朝阳区领地OFFICE1号楼A座1403

上海分部:13911340419

上海地址:上海市宝山区泸太路6395号1_2层B区2440室

广州分部:13161766437

广州地址:广州市天河区广汕一路715号2号楼1-7楼405-5房

关注我们 了解最新动态消息
关注微信
关注微博
专题子站: